Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

253
Views
JSON.parse no funciona cuando uso "éxito" como clave

Estoy trabajando en un proyecto en el que uso muchas solicitudes http. La mayoría de las veces, el servidor responderá como un json con:

 {"error": "Request invalid"}

o

 {"success": "Request successful"}

La página del lado del servidor que devuelve la respuesta se ve así:

 <?php header('Content-type: application/json'); $data = []; if (isset($_POST['action']) { if ($_POST['action'] == 'function_one') { /* Arbitary Function... */ $data['success'] = 'This works...'; } elseif ($_POST['action'] == 'function_two') { /* Arbitary Function... */ $data['error'] = 'Example error'; } elseif ($_POST['action'] == 'function_that_is_not_working') { $data['success'] = 'This unexpectedly does not interpret correctly...'; } } $post_data = json_encode($data); print_r($post_data); ?>

El archivo javascript hace la solicitud http y maneja los datos de manera similar a:

 if (xml_http.readyState == 4 && xml_http.status == 200) { try { console.log(JSON.parse(xml_http.responseText)); return JSON.parse(xml_http.responseText); } catch (e) { console.log(xml_http.responseText); return xml_http.responseText; } }

Así que todo esto funciona absolutamente bien, tengo múltiples funciones, todas usando el mismo código sin ningún problema. El problema que tengo es que tengo una acción específica que hace una solicitud, si configuro $data['success'] no se interpreta como un objeto JSON, sino como una cadena. Si configuro la clave como cualquier otra cosa, funciona bien.

He intentado comentar la función en caso de que haya algún eco inesperado, etc. La cadena JSON es una cadena JSON válida, es solo esta acción cuando se usa la clave de éxito que JSON.parse no lo ve como JSON válido, así que solo emite la cadena.

¿Me estoy perdiendo algo obvio? ¿Hay otras formas en que podría probar esto?

Editar Después de jugar un poco más, descubrí que no había nada malo con la respuesta, ni con el JSON.parse. Tuve un problema con parte del script después de causar un error. Solución: mire siempre el panorama general y los procesos posteriores.

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!